package com.jinghang.scala_base._1_Scala集合

import scala.collection.mutable.ArrayBuffer


/**
  * 空间连续
  * 线性数据结构
  */
object ArrayApp extends App {


  /**
    * 静态数组
    */

  // 可以直接在机器上运行演示
  //声明一个为3个元素存储空间的数组，元素类型为String
  val a = new Array[String](3)
  a.length//获取数组空间长度
  a(1) = "hello"//为数组索引为1的位置赋值
  a(1)

  //声明数组并为数组赋值
  val b = Array("hadoop", "spark", "storm")

  val c = Array(2, 3, 4, 5, 6, 7, 8, 9)
  // 求和
  c.sum
  c.min
  c.max
  //数组转换为字符串
  c.mkString("<","-",">")
  val cStr = c.mkString("-")
  println(" cStr" + cStr)

  println(c.toArray.mkString)





  /**
    *  动态数组
    */
  val array =  scala.collection.mutable.ArrayBuffer[Int]()

  //把元素1放入数组
  array += 1
  array += 2
  array += (3, 4, 5)
  //拼接/合并集合
  array ++= Array(6, 7, 8)
  //在索引为0的位置插入元素100
  array.insert(0, 100)
  array.remove(1)
  //从索引为0的位置开始删除3个元素
  array.remove(0, 3)
  //从最后开始删除几个元素
  array.trimEnd(2)


  /*
    数组的遍历
   */

    for(i <- 0 until c.length) {
      println(c(i))
    }

    for(ele <- c) {
      println(ele)
    }

  //反向遍历  reverse相反
  /*
    拆分程序：
      0 until array.length
      (0 until array.length).reverse
   */
  for (i <- (0 until array.length).reverse) {
    println(array(i))
  }





}
